package IU;

import Entidades.Contrato;
import Entidades.Detallecontrato;
import java.util.List;
import java.util.Vector;
import javax.swing.JOptionPane;
import utiles.Validador;
import javax.swing.JComboBox;

import Controladores.CtrlLocalidad;
import Controladores.CtrlPais;
import Controladores.CtrlProveedor;
import Controladores.CtrlProvincia;
import Controladores.CtrlContrato;
import Controladores.CtrlDetallecontrato;
import Controladores.CtrlDetallerecepcion;
import Controladores.CtrlEstadocontrato;
import Controladores.CtrlTransportista;
import Controladores.CtrlTransporte;
import Controladores.CtrlProducto;
import Controladores.CtrlLagar;
import Controladores.CtrlEstadoespera;
import Controladores.CtrlAMBOperario;



import Entidades.Detallerecepcion;
import Entidades.Estadocontrato;
import Entidades.Estadoespera;
import Entidades.Estadooperario;
import Entidades.Producto;
import Entidades.Proveedor;
import Entidades.Transporte;
import Entidades.Transportista;
import Entidades.Lagar;
import Entidades.Operario;

import java.awt.event.MouseAdapter;
import java.util.Collection;
import java.util.ArrayList;
import javax.swing.event.ListSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;

/////////////////LISTAR////////////////////
/////////////////LISTAR////////////////////
/**
 *
 * @author  Laura
 * 
 * 
 */
public class DescargaLagar_1 extends javax.swing.JFrame {

    static String datos;
    static String datos1;
    private int filas;
    private int cantidadColumnas;
    private String cadenaBascula = "18000";// Borrar: "18000"
    private String[] args;
    String telefono1;
    String telefono2;
    Proveedor proveedor;
    Producto producto;
    TablaPersonalizada tableModel;
    private List listap;
    CtrlProveedor ctrlproveedor;
    CtrlPais controladorpais;
    CtrlProvincia controladorprov;
    CtrlLocalidad controladorlocal;
    CtrlContrato controladorcontrato;
    CtrlDetallecontrato controladordetallecontr;
    CtrlEstadocontrato controladorestadocontrato;
    CtrlDetallerecepcion ctrldetallerecepcion;
    CtrlTransporte ctrltransporte;
    CtrlTransportista ctrltransportista;
    CtrlProducto ctrlproducto;
    CtrlLagar ctrllagar;
    CtrlEstadoespera ctrlestadoespera;
    CtrlAMBOperario ctrloperario;
    Operario oper;
    String operario;
    Lagar lagarSel;
    Proveedor o;
    Validador validador;
    Collection<Detallecontrato> detalleCollection = new ArrayList<Detallecontrato>();
    Estadooperario miestado = null;
    Estadocontrato e = null;
    Estadocontrato estadocontrato = null;
    Transportista transportista;
    Transporte transporte;
    Detallerecepcion detallerecepcion;
    String estado = "EsperaDescargaLagar";
    Contrato contrato;
    Proveedor miprov = null;
    // private List<Contrato> listacontpend = new ArrayList<Contrato>();
    private List<Detallerecepcion> listadetpend = new ArrayList<Detallerecepcion>();
   // private List<Contrato> listacontparam = new ArrayList<Contrato>();
    private List<Detallerecepcion> listadetparam = new ArrayList<Detallerecepcion>();
    List<Lagar> listalagar = new ArrayList<Lagar>();
    Vector<Lagar> listalagarV = new Vector<Lagar>();
    List<Lagar> listalagarSel = new ArrayList<Lagar>();
    List<Lagar> listaLagares = new ArrayList<Lagar>();
    Estadoespera estadoespera;

    //List<Empaque> listaempaquess = new ArrayList<Empaque>();
    public DescargaLagar_1(String o) {
        initComponents();
        operario = o;
        jTextFieldUsuario2.setText(operario);
        ctrlproveedor = new CtrlProveedor();
        controladordetallecontr = new CtrlDetallecontrato();
        controladorestadocontrato = new CtrlEstadocontrato();
        controladorcontrato = new CtrlContrato();
        ctrldetallerecepcion = new CtrlDetallerecepcion();
        ctrltransporte = new CtrlTransporte();
        ctrltransportista = new CtrlTransportista();
        ctrlproducto = new CtrlProducto();
        ctrllagar = new CtrlLagar();
        ctrlestadoespera = new CtrlEstadoespera();
        ctrloperario = new CtrlAMBOperario();

        cargarTabla();
        cargarTablaLagares();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        GestorPesajeJpaPU2EntityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("GestorPesajeJpaPU2").createEntityManager();
        lagarQuery = java.beans.Beans.isDesignTime() ? null : GestorPesajeJpaPU2EntityManager.createQuery("SELECT l FROM Lagar l");
        lagarList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : lagarQuery.getResultList();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jButtonSeleccionarPedido = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTablePedidosPendientes = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTableLagares = new javax.swing.JTable();
        jPanel7 = new javax.swing.JPanel();
        jTextFieldUsuario2 = new javax.swing.JTextField();
        jButtonSalir = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Descarga Lagar - Sistema Gestor de Pesaje para Bodegas");

        jTabbedPane1.setForeground(new java.awt.Color(102, 0, 102));
        jTabbedPane1.setFont(new java.awt.Font("Segoe UI", 3, 12));

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Transportes pendientes de Descarga", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jButtonSeleccionarPedido.setFont(new java.awt.Font("Segoe UI", 3, 12));
        jButtonSeleccionarPedido.setForeground(new java.awt.Color(102, 0, 102));
        jButtonSeleccionarPedido.setText("Asignar");
        jButtonSeleccionarPedido.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSeleccionarPedidoActionPerformed(evt);
            }
        });

        jScrollPane1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
        jScrollPane1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jScrollPane1MouseClicked(evt);
            }
        });

        jTablePedidosPendientes.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Apellido Transportista", "Patente Transporte", "Razón Social Proveedor", "Nombre Producto", "Nro Detalle Recepción", "Seleccionado", "Lagar"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class, java.lang.Object.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, true, true
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTablePedidosPendientes.setColumnSelectionAllowed(true);
        jTablePedidosPendientes.getTableHeader().setReorderingAllowed(false);
        jTablePedidosPendientes.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTablePedidosPendientesMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTablePedidosPendientes);
        jTablePedidosPendientes.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Información de Lagares disponibles:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jScrollPane2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        jTableLagares.setEnabled(false);
        jScrollPane2.setViewportView(jTableLagares);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 528, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(49, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(24, 24, 24)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(38, Short.MAX_VALUE))
        );

        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Usuario Registrado", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jTextFieldUsuario2.setEditable(false);
        jTextFieldUsuario2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario2, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(28, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 871, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE)
                .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addGap(143, 143, 143)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 217, Short.MAX_VALUE)
                .addComponent(jButtonSeleccionarPedido, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(25, 25, 25))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(54, 54, 54)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButtonSeleccionarPedido)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 521, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane1.addTab("Espera Descarga Lagar", jPanel1);

        jButtonSalir.setFont(new java.awt.Font("Segoe UI", 3, 12));
        jButtonSalir.setForeground(new java.awt.Color(102, 0, 102));
        jButtonSalir.setText("Salir");
        jButtonSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalirActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(1228, 1228, 1228)
                        .addComponent(jButtonSalir))
                    .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1188, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(27, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 573, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 30, Short.MAX_VALUE)
                .addComponent(jButtonSalir)
                .addGap(19, 19, 19))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-1330)/2, (screenSize.height-685)/2, 1330, 685);
    }// </editor-fold>//GEN-END:initComponents

private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSalirActionPerformed
    dispose();
}//GEN-LAST:event_jButtonSalirActionPerformed


    private void cargarTabla() {

        try {
            listalagar = ctrllagar.buscarTodosLagar();
            // listaempaque=(Vector) listaempaquess;
        } catch (Exception e) {
        }

        javax.swing.table.TableColumn column = jTablePedidosPendientes.getColumnModel().getColumn(6);
        JComboBox comboBox = new JComboBox(listalagarV);
        //add your stuff in an ArrayList called list to the ComboBox as Strings. .
        for (int i = 0; i < listalagar.size(); i++) {
            comboBox.addItem(listalagar.get(i).getIdLagar());
        }
        column.setCellEditor(new javax.swing.DefaultCellEditor(comboBox));

        DefaultTableModel modelo = (DefaultTableModel) jTablePedidosPendientes.getModel();

        //       System.out.println("tamaño de detalles  " + detalles.size());
//
        System.out.println("dentro de cargar tabla");

        try {
            listadetpend = ctrldetallerecepcion.buscarDetallerecepcionDescargaLagar();
            System.out.println("tamaño de lista det pend" + listadetpend.size());
            if (listadetpend.size() != 0) {
                for (int i = 0; i < listadetpend.size(); i++) {
                    Detallerecepcion detalle = listadetpend.get(i);

                    Vector fila = new Vector();
                    // Detallecontrato detalle =  listadetpend.get(i);
                    fila.add(detalle.getRecepcion().getTransportista().getApellidoTransportista());
                    fila.add(detalle.getRecepcion().getTransporte().getPatenteTransporte());
                    fila.add(detalle.getRecepcion().getContrato().getProveedor().getRazonSocialProveedor());
                    fila.add(detalle.getProducto().getNombreProducto());
                    fila.add(detalle.getIdDetalleRecepcion());
                    fila.add(false);
                    fila.add("Ninguno");

                    modelo.addRow(fila);
                    this.jTablePedidosPendientes.setModel(modelo);
                }
            } else {
                JOptionPane.showMessageDialog(this, "No se han encontrado transportes para Lagar.\n ", "Descarga Lagar", JOptionPane.ERROR_MESSAGE);
            }
        } catch (Exception e) {
            System.out.println(e);
            System.out.println("no trajo la consulta + tamaño de lista det pend: " + listadetpend.size());
        }
    }

private void jButtonSeleccionarPedidoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSeleccionarPedidoActionPerformed

    //TENGO QUE BUSCAR TODOS LOS LAGARES DE ESE PRODUCTO UN PRODUCTO ESTÁ EN MÁS DE UN LAGAR
    // SI TIENE MUCHOS PRODUCTOS POR CADA PRODUCTO  INDICAR UN LAGAR.
    //obtenerSeleccionFilas();
    //acá como me traigo los detalles de las recepciones
    System.out.println(" obtener seleccion de filas");
    int cantfilas = jTablePedidosPendientes.getModel().getRowCount();

    boolean seleccionado = false;
    Transportista transporttista = null;
    Transporte transportte = null;
    Producto productto = null;
    Proveedor proveeddor = null;
    if (cantfilas != 0) {
        for (int s = 0; s < cantfilas; s++) {
            System.out.println("cantfilas " + cantfilas);
            seleccionado = Boolean.parseBoolean(jTablePedidosPendientes.getValueAt(s, 5).toString());
            if (seleccionado) {

                // EL PRODUCTO DE DETALLERECEPCION DEBE SER IGUAL AL PRODUCTO DEL LAGAR SELECCIONADO
                //producto
                Object product = jTablePedidosPendientes.getValueAt(s, 3);

                try {
                    productto = ctrlproducto.buscarProductoNombre(product.toString());
                } catch (Exception e) {
                    System.out.println("producto " + e);
                }
                producto = productto;

                 Object patente = jTablePedidosPendientes.getValueAt(s, 1);

            try {
                transportte = ctrltransporte.buscarTransportePatente(patente.toString());
            } catch (Exception e) {
                System.out.println("transporte" + e);
            }
            transporte = transportte;
                //detalle recepcion
                Object iddetallerecepcion = jTablePedidosPendientes.getValueAt(s, 4);
                System.out.println(" detalle recepcion " + iddetallerecepcion);

                try {
                    detallerecepcion = ctrldetallerecepcion.buscarDetallerecepcion_X_idDetallerecepcion(Integer.parseInt(iddetallerecepcion.toString()));
                    System.out.println("encontro el detallerecepcion " + detallerecepcion.toString());

                    listadetparam.add(detallerecepcion);

                } catch (Exception e) {
                    System.out.println("No trajo el detallerecepcion  que le pedi " + e);
                }

                Object laga = jTablePedidosPendientes.getValueAt(s, 6);
                String lagar = laga.toString();

                try {
                    lagarSel = ctrllagar.buscarLagar_X_idLagar(Integer.parseInt(laga.toString()));
                    System.out.println("#### Encontró Lagar #####");
                } catch (Exception e) {
                    System.out.println("No encontró el Lagar " + e);
                }

                try {
                    estadoespera = ctrlestadoespera.buscarEstadoesperaNombre("PesoSalidaPendiente");
                    System.out.println("###Encontró estadoespera: " + estadoespera);
                } catch (Exception e) {
                    System.out.println("no encontró el estado pesoSalidaPendiente " + e);
                }


                transporte.setEstadoespera(estadoespera);

                try {
                    ctrltransporte.modificarTransporte(transporte);
                    System.out.println("#### Modificó transporte ####");
                } catch (Exception e) {
                    System.out.println("No pudo modificar transporte" + e);
                }
                System.out.println("transporte " + transporte);

                if (producto.equals(lagarSel.getProducto())) {
                    System.out.println("Es el lagar correcto" + lagarSel.getIdLagar());

                    detallerecepcion.setLagar(lagarSel);
                    detallerecepcion.setEstadoespera(estadoespera);
                    
                    try {
                        ctrldetallerecepcion.modificarDetallerecepcion(detallerecepcion);
                        System.out.println("Modificó el detalle de la recepcion");
                        JOptionPane.showMessageDialog(this, "Se asignó el transporte "+ transporte.getPatenteTransporte() + " al Lagar "+lagarSel.getIdLagar()+". Ha sido enviado a Pesaje de Salida .\n ", "Descarga Lagar", JOptionPane.INFORMATION_MESSAGE);
                    } catch (Exception e) {
                        System.out.println("No pudo modificar el detalle de la recepcion");
                    }
                } else {
                    System.out.println("Lagar incorrecto " + lagarSel.getIdLagar());
                    JOptionPane.showMessageDialog(this, "Ha seleccionado un lagar incorrecto para el producto: " + producto.getNombreProducto() + " especificado en la recepción.\n ", "Descarga Lagar", JOptionPane.ERROR_MESSAGE);
                }
            }
        }
       

        System.out.println("********* FIN CODIGO **********");
     
    } else {
        JOptionPane.showMessageDialog(this, "Debe seleccionar al menos un transporte.\n ", "Descarga Lagar", JOptionPane.ERROR_MESSAGE);

    }
}//GEN-LAST:event_jButtonSeleccionarPedidoActionPerformed
    private void setOcultarColumnasJTable(JTable tbl, int columna[]) {
        for (int i = 0; i
                < columna.length; i++) {
            tbl.getColumnModel().getColumn(columna[i]).setMaxWidth(0);

            tbl.getColumnModel().getColumn(columna[i]).setMinWidth(0);

            tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMaxWidth(0);

            tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMinWidth(0);



        }
    }
//   Una mehor solucion aqui
//La defines en una clase final de java este metodo para que sea reutilizable
//Espero te sirva mucho:
//este metodo recibi dos parametros
//final JTable tabla => la jtable en la que quieres ocultar las columnas
//final int… Columnas=> las columnas que quieres ocultar le pasas cualquier cantidad de columnas.
//public static void OcultarColumnasJtable(final JTable tabla, final int… Columnas) {
//try {
//for (int i : Columnas) {
//tabla.getColumn(tabla.getColumnName(i)).setWidth(0);//Ancho de la columna
//tabla.getColumn(tabla.getColumnName(i)).setMinWidth(0);//Ancho minimo de la columna 0
//tabla.getColumn(tabla.getColumnName(i)).setMaxWidth(0);//Ancho maximo de la columna
//}
//} catch (ArrayIndexOutOfBoundsException e) {
//}
//}

private void jTablePedidosPendientesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTablePedidosPendientesMouseClicked
}//GEN-LAST:event_jTablePedidosPendientesMouseClicked

private void jScrollPane1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jScrollPane1MouseClicked
}//GEN-LAST:event_jScrollPane1MouseClicked
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.persistence.EntityManager GestorPesajeJpaPU2EntityManager;
    private javax.swing.JButton jButtonSalir;
    private javax.swing.JButton jButtonSeleccionarPedido;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTableLagares;
    private javax.swing.JTable jTablePedidosPendientes;
    private javax.swing.JTextField jTextFieldUsuario2;
    private java.util.List<Entidades.Lagar> lagarList;
    private javax.persistence.Query lagarQuery;
    // End of variables declaration//GEN-END:variables

    private void cargarTablaLagares() {
        String[] encabezados = new String[4];
        encabezados[0] = "Número Lagar";
        encabezados[1] = "Ubicación";
        encabezados[2] = "Producto";
        encabezados[3] = "Clasificación";



        tableModel = new TablaPersonalizada(encabezados);
        jTableLagares.setModel(tableModel);



        try {
            listaLagares = ctrllagar.buscarTodosLagar();
            System.out.println("tamaño de listao" + listaLagares.size());



            for (int i = 0; i
                    < listaLagares.size(); i++) {
                Vector fila = new Vector();
                Lagar lagar = (Lagar) listaLagares.get(i);
                fila.add(lagar.getIdLagar());
                fila.add(lagar.getUbicacion());
                fila.add(lagar.getProducto().getNombreProducto());
                fila.add(lagar.getProducto().getClasificacionproducto().getNombreclasificacion());

                tableModel.addRow(fila);

            }
        } catch (Exception e) {
        }
    }
}
